package cn.iocoder.yudao.module.erp.service.business.money.moneyoutcome;

import javax.validation.*;

import cn.iocoder.yudao.module.erp.controller.admin.business.money.moneyoutcome.vo.MoneyOutcomePageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.business.money.moneyoutcome.vo.MoneyOutcomeSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.business.money.moneyoutcome.MoneyOutcomeDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 支出类型 Service 接口
 *
 * @author yy
 */
public interface MoneyOutcomeService {

    /**
     * 创建支出类型
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createMoneyOutcome(@Valid MoneyOutcomeSaveReqVO createReqVO);

    /**
     * 更新支出类型
     *
     * @param updateReqVO 更新信息
     */
    void updateMoneyOutcome(@Valid MoneyOutcomeSaveReqVO updateReqVO);

    /**
     * 删除支出类型
     *
     * @param id 编号
     */
    void deleteMoneyOutcome(Long id);

    /**
     * 获得支出类型
     *
     * @param id 编号
     * @return 支出类型
     */
    MoneyOutcomeDO getMoneyOutcome(Long id);

    /**
     * 获得支出类型分页
     *
     * @param pageReqVO 分页查询
     * @return 支出类型分页
     */
    PageResult<MoneyOutcomeDO> getMoneyOutcomePage(MoneyOutcomePageReqVO pageReqVO);

}